package com.rds.workflow.service;




import com.rds.workflow.domain.RdaNodeTemplete;

import java.util.List;

/**
 * 流程节点模板Service接口
 *
 * @author rds
 * @date 2021-11-24
 */
public interface IRdaNodeTempleteService {

    /**
     * 查询流程节点
     *
     * @param id 节点ID
     * @return 流程节点
     */
    public RdaNodeTemplete selectRdaNodeTempleteById(Long id);

    /**
     * 查询流程节点列表
     *
     * @param rdaNodeTemplete 流程节点
     * @return 流程节点集合
     */
    public List<RdaNodeTemplete> selectRdaNodeTempleteList(RdaNodeTemplete rdaNodeTemplete);

    /**
     * 查询流程节点列表
     *
     * @param workflowid 流程节点
     * @return 流程节点集合
     */
    public List<RdaNodeTemplete> selectRdaNodeTemplete(Long workflowid);


    /**
     * 新增流程节点
     *
     * @param rdaNodeTemplete 流程节点
     * @return 结果
     */
    public int insertRdaNodeTemplete(RdaNodeTemplete rdaNodeTemplete);

    /**
     * 新增流程节点 开始结束节点
     *
     * @param rdaNodeTemplete 流程节点
     * @return 结果
     */
    public int insertRdaNodeTempleteStartAndEnd(RdaNodeTemplete rdaNodeTemplete);

    /**
     * 新增拒绝流程节点
     *
     * @param rdaNodeTemplete 流程节点
     * @return 结果
     */
    public int insertRdaNodeTempleteRefuse(RdaNodeTemplete rdaNodeTemplete);

    /**
     * 修改流程节点
     *
     * @param rdaNodeTemplete 流程节点
     * @return 结果
     */
    public int updateRdaNodeTemplete(RdaNodeTemplete rdaNodeTemplete);

    /**
     * 修改流程节点
     *
     * @param rdaNodeTemplete 流程节点
     * @return 结果
     */
    public int updateRdaNodeTempleteAll(RdaNodeTemplete rdaNodeTemplete);


    /**
     * 批量删除流程节点
     *
     * @param ids 需要删除的流程节点ID
     * @return 结果
     */
    public int deleteRdaNodeTempleteByIds(Long[] ids);


    /**
     * 查询流程节点列表
     *
     * @param workflowid 流程模板id
     * @param isAgent 是否委托
     * @return 流程节点集合
     */
    public List<RdaNodeTemplete> selectRdaNodeTempleteAgentList(Long workflowid,String isAgent);

    /**
     * 获取序列
     */
    public Long selectRdaNodeTempleteNextval();

    /**
     * 批量删除流程节点
     *
     * @param workflowid 流程id
     * @return 结果
     */
    public int deleteRdaNodeTempleteByWorkflowid(Long workflowid);

    /**
     * 新增流程节点
     *
     * @param rdaNodeTemplete 流程节点
     * @return 结果
     */
    public int insertRdaNodeTempleteFlowChartAdd(RdaNodeTemplete rdaNodeTemplete);
}
